<?php

namespace app\index\controller;

use think\Controller;

class Index extends Controller
{
    public function index()
    {
        $mapFilePath = '/data/predynastic_saves/save_map.json';
        $mapFileContent = file_get_contents($mapFilePath);
        //echo $mapFileContent;

        $mapFileJson = json_decode($mapFileContent, true);

        $autoSave = true;
        if ($autoSave) {
            $filename = 'autosave';
        } else {
            $filename = $mapFileJson[0]['Filename'];
        }

        $saveFilePath = '/data/predynastic_saves/' . $filename . '.json';
        $saveFileContent = file_get_contents($saveFilePath);
        //echo $saveFileContent;

        $saveFileJson = json_decode($saveFileContent, true);

        $egypt = $saveFileJson['Egypt'];

        foreach ($egypt['Cells'] as $cell) {
            if ($cell['IsExplored']) {
            }
        }

        $city = $saveFileJson['City'];//小地图的城市

        $maxX = 0;
        foreach ($city['Cells'] as $cell) {
            /*if($cell['Y'] > $maxX){
                $maxX = $cell['Y'];
            }*/
            if ($cell['IsExplored']) {
            }
        }

        $this->assign('saveData', $saveFileJson);
        $this->assign('events', $this->getEvents());

        return view('Index/index');
    }

    public function getJson($index = 0)
    {
        $mapFilePath = '/data/predynastic_saves/save_map.json';
        $mapFileContent = file_get_contents($mapFilePath);
        //echo $mapFileContent;

        $mapFileJson = json_decode($mapFileContent, true);

        $autoSave = $index == 0;
        if ($autoSave) {
            $filename = 'autosave';
        } else {
            $filename = $mapFileJson[$index - 1]['Filename'];
        }

        $saveFilePath = '/data/predynastic_saves/' . $filename . '.json';
        $saveFileContent = file_get_contents($saveFilePath);
        //echo $saveFileContent;

        $saveFileJson = json_decode($saveFileContent, true);

        return json_encode($saveFileJson,
            JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
    }

    private function getEvents()
    {
        $eventsStr = '11 - 完成任务“生存”（增长3工人），+5食物
13 - 随机事件
15 - 获得+4文化
16 - 部落事件（攻击 - 25回合之前你应该拥有5个工人，否则其他部落会来袭击你）
22 - 随机事件
23 - 获得+5文化
29 - 完成任务“新石器革命”（构建2个粮食区块），+10食物
32 - “猎鹰神庙”试炼。与所有试炼一样，想获得黄金奖励必须在在试炼开始后三轮内完成。
33 - 荷鲁斯成为统治者（是荷鲁斯而不是食物加速了建造）
31-33 - 完成任务“永久定居”（达到8工人），+20食物，+30锤
34 - 随机事件（洪水）
35 - 通过审判。 +30食物，+40锤
36 - 部落事件
44 - 部落事件
47 - 随机事件
48 - 完成探索定居点所有区块的任务。 +200文化
52 - 部落事件
57 - 随机事件
61 - “撒哈拉大迁徙”试炼
63 - 撒哈拉沙漠化（-2食物，-2锤）
64- 难民（+2名工人）
64 - 通过大迁徙试炼，+160文化，+40信仰
66 - 随机事件
68 - 第一次沙尘暴（2个区块受损）
72 - 与努比亚人联系（+锤子）
74 - 部落事件
78 - 随机事件
81 - 部落事件
84 - 随机事件
86 - 加入伊莉西娅（+2食物，+2锤，+300文化）
86 - 完成“贵族的形成”试炼（训练500战士）+100战士
87 - “希拉孔波利斯酋帮”试炼。立即通过+1食物，+2锤，+2信仰
87 - 攻克定居点地图上的所有部落。 +3食物，+3锤，+3文化
89 - 动物园
92 - 随机事件
96 - 部落事件
97 - 侦察巴勒斯坦
99 - 随机事件
100 - 开始与巴勒斯坦交易，+80锤
101 - 美索不达米亚的大篷车
103 - 车间损坏（1区块损坏）
105 - 部落事件
108 - 随机事件
109 - 部落事件
112 - 希拉孔波利斯最好的一天（+文化）
115 - 随机事件
118 - 贸易封锁，加入提尼斯任务开始
119 - 部落事件
121 - “大旱灾”试练。立即通过
122 - 大象的消失（-2食物）。如果试炼尚未通过，则发生
123 - 死亡沙漠（牛和亚麻-1食物）。如果试炼尚未通过，则发生
123 - 完成加入提尼斯的任务，+300战士
124 - 随机事件
125 - 完成加入其他部落的任务
126 - 完成征服塞特支派的任务， + 10％的实力，+ 20％的交易效率
127 - 部落事件
132 - 移民（工人价格+ 20％，事件发生变化）
133 - 随机事件
137 - 部落事件
140 - 部落事件
142 - 随机事件
145 - 阿比多斯的墓地（+权威）
147 - 部落事件
150 - 随机事件
151 - “奈加达入侵”试炼。试练略过，+30军力每回合
154 - 完成西奈铜矿建设任务
155 - 总督（+5食物或+12军力或+5信仰每一回合）
165 - 部落事件
168 - 随机事件
171 - 蝎子王之墓。不迟于178回合
174 - 随机事件
177 - 部落事件
181 - “内战”试炼
183 - 通过“内战”试炼，+400信仰
183 - 随机事件
186 - 伊荷鲁斯之墓。不晚于192回合
189 - 部落事件
192 - 国王嘉的坟墓，不晚于199回合
194 - 随机事件
197 - 部落事件
201 - 国王纳尔默之墓，立即建立一个坟墓（不晚于204回合）。
202 - 随机事件
204 - “埃及统一”试炼，+食物+信仰';

        $events = explode("\n", $eventsStr);

        $ret = [];
        foreach ($events as $event) {
            $temp = explode('-', $event);

            $ret[trim($temp[0])] = trim($temp[1]);
        }

       return $ret;
    }
}
